Workshop: Tweet"QA to AQ: Being Agile at Quality"
When developing and delivering large, complex systems it can be all too easy to focus on features and overlook software qualities or “non-functional” requirements such as security, scalability, performance or reliability. As agile spreads across your organization it is even more important to pay attention to quality concerns and coordinate the delivery of features along with necessary architecture and system infrastructure work. As organizations transition to agile processes, Quality Assurance (QA) activities and roles need to evolve. Agile teams embrace a “whole team” approach and incremental delivery of system functionality along with system qualities (also known as non-functional requirements). This requires changes to the ways we work. Instead of gate keepers, Quality Assurance (QA) is engaged and involved throughout development helping clarify system quality requirements and how they will be measured. Quality Control generally refers to inspection activities that occur at the end of a process. Quality Assurance or Total Quality Control is an alternative to Quality Control which recognizes that inspection at the end is ineffective and that you can be more effective if you take a more holistic approach that builds quality into the process from the start engaging the whole team, which we call Agile Quality (AQ). Although special skills may be required to develop and test system qualities, everyone on the team needs to be focused on their delivery.
This session introduces techniques and practices for interjecting system quality specification and related architecture, design and testing efforts into your project while being more agile about it. I will present several agile techniques and practices that support the definition and delivery of system qualities. I will explore how QA, including testers, and architects can collaborate to ensure that system qualities are addressed in an agile manner emphasizing architecture capabilities such as usability, security, performance, scalability, and availability. You will get hands-on experience briefly practicing some of these techniques. You will learn options for coordinating work among teams and be exposed to techniques and practices that support the incremental definition and delivery of system qualities along with system functionality and weaving quality-related work into your projects and programs.
I have been innovating, collecting and writing on the best practices and patterns on this topic for the last 5 years with various colleagues. During this time we have given presentations, workshops, and keynotes at various conferences and in industrial settings. I have published (and continuing writing and collecting) over two dozen patterns on this topic as well. I have been working with organizations on the best practices for Agile Quality Assurance and also shepherded Agile Experience reports on the topic. Variations of this some of this material has been presented as talks and workshop/tutorials at various conferences (Agile, JDD in Poland, SugarLoaf PLoP, Agile Portugal, AgileBrazil, YOW! in Australia, Saturn, and Israel Conference on Software Architecture) and to our clients. In 2015 I won the New Directions award with a colleague at Saturn 2015, given to the presentation that best describes innovative new approaches and thought leadership in the application of architecture-centric practices for our presentation QA to AQ: Shifting from Quality Assurance to Agile Quality. (https://insights.sei.cmu.edu/saturn/2015/05/saturn-2015-awards-conferred.html).